package polymorphism;

/**
 * @author yuisama
 * @date 2022/09/14 19:15
 **/
public class Dog extends Animal{
    public static void main(String[] args) {
//        // 向上
//        Animal animal = new Dog("66",5);
//        animal.eat();
//        // 要想访问Dog类独有的属性和方法，就需要向下转型，将animal引用的Dog类对象
//        // 还原为Dog类的引用
//        // 向下转型，将大类型的引用赋值为小类型引用，需要强转
//        Dog dog = (Dog) animal;
//        dog.food = "狗粮";
//        dog.bark();
        // 当前类名称 当前类引用 = new 当前类,与子类毫无关系
        Animal animal = new Dog("66",5);
        // 使用instanceof关键字判断一下当前animal的引用是否指向Dog类的实例
        if (animal instanceof Dog) {
            System.out.println("animal 是Dog类的实例");
            // 返回true/fasle
            Dog dog = (Dog) animal;
            dog.food = "狗粮";
            dog.bark();
        }
    }
    String food;
    public Dog(String name,int age) {
        super(name,age);
    }
    public void bark() {
        System.out.println("Dog类独有的方法bark");
    }
    public void eat() {
        System.out.println(this.name + "正在啃骨头");
    }
}